Daniel Boles [Mon, 28 Aug 2017 17:57:27 +0000 (18:57 +0100)]
ComboBox: Fix wrongly matched signal disconnect()s
Various disconnections had the wrong flags and/or data, so we failed to
disconnect a pile of signals, shown by 0 returned by the disconnect_*()
functions. Fix this, and use the nicer disconnect_by_*() while here.
Daniel Boles [Mon, 28 Aug 2017 17:38:45 +0000 (18:38 +0100)]
Revert "combobox: remove superfluous GTK+ grabs"
This reverts commit
46b4e5d38877197503f802380e5c9a469218f99b.
Apparently these weren’t so redundant, because their removal introduced
at least 2 bugs in list-mode ComboBoxes: failure to close the popup upon
clicking out of it, and failing to receive mouse input in the popup of a
CB in a modal window. It may also have caused (even more!) stuck grabs.
https://bugzilla.gnome.org/show_bug.cgi?id=738387
https://bugzilla.gnome.org/show_bug.cgi?id=776793
Daniel Boles [Sun, 27 Aug 2017 23:12:02 +0000 (00:12 +0100)]
ComboBox: Really set list-mode popup transient-for
set_transient_for(toplevel) was only called in list_setup(). It was easy
to make a test showing a NULL :transient-for instead of the correct one.
So, move the call from list_setup() to popup_for_device(). Also do that
for window_group_add_window(), which means not calling it redundantly.
(I tried using a ComboBox:parent-set handler, but the Inspector’s CB
didn’t like that: it calls popup_for_device() twice and closes on button
release. Anyway, using popup() is much more concise than a new handler.)
Daniel Boles [Sun, 27 Aug 2017 20:29:52 +0000 (21:29 +0100)]
ComboBox: List-mode popup must open on CB’s screen
The screen for the list-mode popup_window was only being set in
set_popup_widget(), i.e. when changing modes, so if the ComboBox was
moved to a different screen later, the popup would appear on the
original one, which is wrong.
Worse, this (somehow) broke opening some combos in the Inspector.
Fix this by moving the call to set_screen() to popup_for_device(), so
the popup_window is put on the correct screen each time around.
https://bugzilla.gnome.org/show_bug.cgi?id=468868
https://bugzilla.gnome.org/show_bug.cgi?id=786771
Ask Hjorth Larsen [Mon, 28 Aug 2017 17:27:02 +0000 (19:27 +0200)]
Updated Danish translation
Matej Urbančič [Mon, 28 Aug 2017 17:23:15 +0000 (19:23 +0200)]
Updated Slovenian translation
Matej Urbančič [Mon, 28 Aug 2017 17:19:40 +0000 (19:19 +0200)]
Updated Slovenian translation
Gábor Kelemen [Mon, 28 Aug 2017 16:09:38 +0000 (16:09 +0000)]
Update Hungarian translation
Balázs Meskó [Mon, 28 Aug 2017 16:05:37 +0000 (16:05 +0000)]
Update Hungarian translation
Fabio Tomat [Mon, 28 Aug 2017 14:38:07 +0000 (14:38 +0000)]
Update Friulian translation
Fabio Tomat [Mon, 28 Aug 2017 14:12:06 +0000 (14:12 +0000)]
Update Friulian translation
Marek Cernocky [Mon, 28 Aug 2017 13:54:20 +0000 (15:54 +0200)]
Updated Czech translation
Милош Поповић [Mon, 28 Aug 2017 11:03:13 +0000 (11:03 +0000)]
Update Serbian Latin translation
Марко Костић [Mon, 28 Aug 2017 11:00:46 +0000 (11:00 +0000)]
Update Serbian translation
Chun-wei Fan [Mon, 28 Aug 2017 08:28:18 +0000 (16:28 +0800)]
build: Fix last commit
Another pango-1.0.lib was added accidently to the list of .lib files for
the GTK+ to link to. Remove that, although it shouldn't really matter.
Chun-wei Fan [Mon, 28 Aug 2017 08:18:24 +0000 (16:18 +0800)]
build: Integrate introspection builds into MSVC projects
This is so that it is easier for one building GTK+ with Visual Studio to
build the introspection files as well in one shot. Note that this is
not built by default, so one needs to select the gtk3-introspect
explicitly to build (and clean up) the introspection files.
For this to work, one needs to ensure the following:
-A complete build of GObject-Introspection in $(GlibEtcInstallRoot),
that is built with the same installation of the Python interpretor that
is used here (see PythonDir and PythonDirX64 in
gtk3-version-paths.[vsprops|props]).
-Introspection files for ATK, GDK-Pixbuf and Pango, also in their proper
locations under $(GlibEtcInstallRoot), which should be built with the
same G-I installation.
Chun-wei Fan [Mon, 28 Aug 2017 08:15:11 +0000 (16:15 +0800)]
build: Prepare NMake Makefiles for MSVC project integration
The build/win32/detectenv-msvc.mak needs to be updated for Visual Studio
2017, and we ought to add quotes to surround the copy destination path
for the introspection files, so that we do not bail out in the copy
process (cmd.exe's copy command does not like '+' in them that are not
quoted).
Chun-wei Fan [Mon, 28 Aug 2017 07:01:55 +0000 (15:01 +0800)]
build: Set PythonDir according to MSVC version in projects
This is to make this more in-line with what is in the G-I projects, so
that we could use this to build the introspection files for GTK+-3.22.x
directly from the project files. This is intended to follow the MSVC
versions used to build the official CPython Windows binaries, i.e.:
-3.3.x, 3.4.x: for MSVC 2010, 2012, 2013, which is built with 2010
-3.5.x, 3.6.x: for 2015 and 2017, which is built with 2015.
Chun-wei Fan [Mon, 28 Aug 2017 06:58:42 +0000 (14:58 +0800)]
build: Use PythonDir in Visual Studio projects
This is to avoid any confusion with the PYTHONPATH envvar that is used
by Python for additional locations for looking for modules.
Julius Härtl [Sat, 26 Aug 2017 20:43:16 +0000 (22:43 +0200)]
gtkplacessidebar: remove oversight of old code
https://bugzilla.gnome.org/show_bug.cgi?id=786123
Changwoo Ryu [Sun, 27 Aug 2017 21:24:01 +0000 (21:24 +0000)]
Update Korean translation
Changwoo Ryu [Sun, 27 Aug 2017 21:22:39 +0000 (21:22 +0000)]
Update Korean translation
Carlos Garnacho [Thu, 10 Aug 2017 09:56:47 +0000 (11:56 +0200)]
menu: Avoid cancelling the menu on GTK+ grabs inside the GtkMenu
Allows again sliders as menuitems, broken by commit
9b032073.
https://bugzilla.gnome.org/show_bug.cgi?id=786029
Daniel Boles [Sun, 27 Aug 2017 14:32:44 +0000 (15:32 +0100)]
PlacesSidebar: Avoid warning about unused variable
end_icon is only used if HAVE_CLOUDPROVIDERS is defined, so only declare
it under the same condition.
https://bugzilla.gnome.org/show_bug.cgi?id=786123
Daniel Boles [Sun, 27 Aug 2017 14:31:17 +0000 (15:31 +0100)]
SidebarRow: need config.h for HAVE_CLOUDPROVIDERS
https://bugzilla.gnome.org/show_bug.cgi?id=786123
Daniel Boles [Sun, 27 Aug 2017 14:34:38 +0000 (15:34 +0100)]
testgtk: Remove an unused variable
Mario Blättermann [Sun, 27 Aug 2017 08:28:45 +0000 (08:28 +0000)]
Update German translation
Andika Triwidada [Sun, 27 Aug 2017 01:43:41 +0000 (01:43 +0000)]
Update Indonesian translation
Matthias Clasen [Sat, 26 Aug 2017 23:15:36 +0000 (19:15 -0400)]
Remove an unused field
Drag contexts are objects, so there is no need to carry a
manual refcount around.
Matthias Clasen [Sat, 26 Aug 2017 22:01:17 +0000 (18:01 -0400)]
x11: Fix initial drag cursors
Under X, we were not setting the right drag cursor initially,
because at current_action == action == 0, initially. Fix this
by explicitly using the right cursor when grabbing.
Anders Jonsson [Sat, 26 Aug 2017 22:20:51 +0000 (22:20 +0000)]
Update Swedish translation
Milo Casagrande [Sat, 26 Aug 2017 15:40:24 +0000 (15:40 +0000)]
Update Italian translation
Matthias Clasen [Sat, 26 Aug 2017 14:25:56 +0000 (10:25 -0400)]
emoji: Use the right gettext domain
Otherwise, strings are not translated.
https://bugzilla.gnome.org/show_bug.cgi?id=786841
Piotr Drąg [Sat, 26 Aug 2017 14:11:51 +0000 (16:11 +0200)]
Update Polish translation
Fabio Tomat [Sat, 26 Aug 2017 11:23:42 +0000 (11:23 +0000)]
Update Friulian translation
Baurzhan Muftakhidinov [Sat, 26 Aug 2017 06:26:39 +0000 (06:26 +0000)]
Update Kazakh translation
Rafael Fontenelle [Sat, 26 Aug 2017 02:17:43 +0000 (02:17 +0000)]
Update Brazilian Portuguese translation
Julius Härtl [Thu, 10 Aug 2017 20:30:36 +0000 (22:30 +0200)]
gtkplacessidebar: implement libcloudproviders support
Add integration of the libcloudproviders DBus API to the
GtkPlacesSidebar by showing name and sync status of the cloud providers.
The exported menu is rendered as a GtkPopover.
The sidebar will be updated if the list of cloudproviders changes e.g.
by adding or removing an account. If any cloud provider changes detailed
information like sync status only the individual sidebar row gets
updated.
Co-authored-by: Carlos Soriano <csoriano@gnome.org>
https://bugzilla.gnome.org/show_bug.cgi?id=786123
Daniel Boles [Fri, 25 Aug 2017 20:00:51 +0000 (21:00 +0100)]
ComboBox: Use iter before popdown() may invalidate
Bad actors, such as our very own FileChooserButton, may connect to the
:popped-up property and alter the model as the menu becomes in/visible.
We were getting an iter to the model while popped-up, then doing
popdown(), then using the iter, which may have just been invalidated by
the errant notify::popped-up handler. If so, we quickly crash fatally.
This is clearly bonkers, but until such patterns are removed, we have to
work around them. So, set_active() from the clicked item while it is
known to be valid, by moving the call to set_active() before popdown().
While here, change set_active_iter(iter) to set_active_internal(path) to
avoid pointlessly going through the iter to get the path we already have
https://bugzilla.gnome.org/show_bug.cgi?id=729651
Daniel Boles [Thu, 24 Aug 2017 20:05:00 +0000 (21:05 +0100)]
Expander: Also hide child GdkWindow when collapsed
Just adding/removing to/from the BoxGadget is not sufficient; that
leaves the GdkWindow hanging around, taking input, changing the cursor,
and all sorts of other nefarious shenanigans.
Resolve by ensuring the child’s GdkWindow is unmapped if collapsed.
Note: the reflexive solution is just to set_visible(child, expanded),
but it is best to avoid messing with the child’s :visible property.
https://bugzilla.gnome.org/show_bug.cgi?id=776937
Daniel Boles [Thu, 24 Aug 2017 11:46:47 +0000 (12:46 +0100)]
ComboBox: Clarify documentation of get_active_iter
https://bugzilla.gnome.org/show_bug.cgi?id=618160
Daniel Boles [Wed, 23 Aug 2017 20:44:10 +0000 (21:44 +0100)]
Popover: Include window shadows in overshoot calcs
.update_position() enforces that non-Wayland platforms must position a
Popover within its parent Window. We use the allocation of the Window
to translate the position and check for overshoot on each of its sides.
Calling Widget.get_allocation() of a CSD Window includes its shadows.
But shadows were not excluded from the area in which we can position.
Thus, Popovers could get positioned in the shadow of CSD windows, where,
at least on X11, no input is received. Therefore, positioning a Popover
over a shadow meant its child widgets within that area became unusable.
Fix by calling Window.get_shadow() and including it in the overshoot on
each side. This adjusts for how the allocation includes shadows, making
overshoots with and without shadows the same. Thus, we avoid considering
shadows as viable for positioning, favouring a side where input works.
https://bugzilla.gnome.org/show_bug.cgi?id=786209
Daniel Boles [Sun, 13 Aug 2017 19:15:36 +0000 (20:15 +0100)]
testpopover: Use HeaderBar to get CSD decorations
This helps test whether the Popover positioning gets messed up by the
presence of CSD shadow or other accessories around the content area.
https://bugzilla.gnome.org/show_bug.cgi?id=786209
Cheng-Chia Tseng [Thu, 24 Aug 2017 16:39:23 +0000 (16:39 +0000)]
Update Chinese (Taiwan) translation
Anders Jonsson [Thu, 24 Aug 2017 09:44:28 +0000 (09:44 +0000)]
Update Swedish translation
Anders Jonsson [Thu, 24 Aug 2017 09:37:42 +0000 (09:37 +0000)]
Update Swedish translation
Piotr Drąg [Thu, 24 Aug 2017 00:45:09 +0000 (02:45 +0200)]
Update POTFILES.in and POTFILES.skip
Daniel Boles [Sat, 19 Aug 2017 16:18:35 +0000 (17:18 +0100)]
SidebarRow: Add Unmount tooltip to eject_button
It was reported that the lack of a tooltip made its purpose unclear.
This can be solved by just copying PlacesViewRow’s eject_button tooltip.
https://bugzilla.gnome.org/show_bug.cgi?id=766909
Tom Schoonjans [Mon, 31 Jul 2017 20:28:42 +0000 (21:28 +0100)]
GtkFileChooserNativeQuartz: restore parent focus after closing dialog
Tested for both modal and non-modal dialogs
https://bugzilla.gnome.org/show_bug.cgi?id=785306
Tom Schoonjans [Mon, 31 Jul 2017 20:26:47 +0000 (21:26 +0100)]
GtkFileChooserNativeQuartz: improve support for file filters
Instead of using conditional compilation, use respondsToSelector to
check at runtime for setAccessoryViewDisclosed.
https://bugzilla.gnome.org/show_bug.cgi?id=785306
Tom Schoonjans [Sun, 23 Jul 2017 08:37:26 +0000 (09:37 +0100)]
GtkFileChooserNativeQuartz: add support for Mountain Lion and Mavericks
https://bugzilla.gnome.org/show_bug.cgi?id=784723 introduced support for
native file chooser dialogs on macOS, but due to the use of generics in
the patch, there will be compilation errors on pre-Xcode 7 platforms,
such as Mountain Lion and Mavericks.
I strongly recommend to revert this patch when the oldest supported
macOS release is bumped to Yosemite (10.10).
https://bugzilla.gnome.org/show_bug.cgi?id=785306
Lionel Landwerlin [Fri, 18 Aug 2017 22:57:56 +0000 (23:57 +0100)]
gdk: wayland: always set buffer scale on size update
We're only updating this when we have an EGL window. This means we
have the wrong scaling factor when using Vulkan.
https://bugzilla.gnome.org/show_bug.cgi?id=786492
Fabio Tomat [Wed, 23 Aug 2017 12:55:53 +0000 (12:55 +0000)]
Update Friulian translation
Milo Casagrande [Wed, 23 Aug 2017 07:12:14 +0000 (07:12 +0000)]
Update Italian translation
Milo Casagrande [Tue, 22 Aug 2017 16:41:00 +0000 (16:41 +0000)]
Update Italian translation
Daniel Boles [Tue, 22 Aug 2017 13:14:53 +0000 (14:14 +0100)]
getting_started: Sync filenames & section headings
The order of Examples 3 and 4 was swapped, so the headings updated
themselves, but the filenames were left reflecting the old order.
https://bugzilla.gnome.org/show_bug.cgi?id=786553
Matthias Clasen [Tue, 22 Aug 2017 12:33:11 +0000 (08:33 -0400)]
3.22.19
Matthias Clasen [Sat, 19 Aug 2017 18:05:48 +0000 (14:05 -0400)]
Handle emoji data change in emoji chooser
Update the settings schema to follow the change in Emoji data,
and make the emoji chooser code handle the new format.
Matthias Clasen [Sat, 19 Aug 2017 18:05:16 +0000 (14:05 -0400)]
Add shortnames to emoji data
The json file is from
https://github.com/emojione/emojione/tree/master/extras/alpha-codes
It is under the MIT license.
Matthias Clasen [Tue, 22 Aug 2017 10:41:31 +0000 (06:41 -0400)]
Don't consume too many key releases
The Emoji input support in GtkIMContextSimple was
unintentionally consuming too many key release
events. Fix this.
https://bugzilla.gnome.org/show_bug.cgi?id=786594
Daniel Mustieles [Mon, 21 Aug 2017 11:33:27 +0000 (11:33 +0000)]
Update Spanish translation
Pawan Chitrakar [Sun, 20 Aug 2017 22:44:56 +0000 (22:44 +0000)]
Update Nepali translation
Mario Blättermann [Sun, 20 Aug 2017 14:40:07 +0000 (14:40 +0000)]
Update German translation
Christian Kirbach [Sun, 20 Aug 2017 14:33:49 +0000 (14:33 +0000)]
Update German translation
Pawan Chitrakar [Sun, 20 Aug 2017 09:42:28 +0000 (09:42 +0000)]
Update Nepali translation
Baurzhan Muftakhidinov [Sat, 19 Aug 2017 17:33:57 +0000 (17:33 +0000)]
Update Kazakh translation
Alexandre Franke [Sat, 19 Aug 2017 14:44:33 +0000 (14:44 +0000)]
Update French translation
Alexandre Franke [Sat, 19 Aug 2017 14:41:23 +0000 (14:41 +0000)]
Update French translation
Mario Blättermann [Sat, 19 Aug 2017 11:46:22 +0000 (11:46 +0000)]
Update German translation
gogo [Fri, 18 Aug 2017 20:38:20 +0000 (20:38 +0000)]
Update Croatian translation
gogo [Fri, 18 Aug 2017 20:36:41 +0000 (20:36 +0000)]
Update Croatian translation
Carlos Garnacho [Fri, 18 Aug 2017 17:16:19 +0000 (19:16 +0200)]
gtkbutton: Avoid keyboard grabs
Seems to be there for the sole purpose of ensuring the button
shall receive the key release on keyboard-triggered activation.
For the cases where this makes sense (eg. comboboxes, menubuttons,
...) gtk+ already does ensure the menu is popup after key release.
This makes the grab pretty useless, and there's many other cases
where it doesn't make sense (eg. button being activated
programmatically from an event handler in another widget).
Fixes button activation unintendedly triggering shortcut inhibition
on wayland.
https://bugzilla.gnome.org/show_bug.cgi?id=786480
Rui Matos [Fri, 18 Aug 2017 10:01:54 +0000 (12:01 +0200)]
gdkwindow: Avoid re-setting the opaque region if it doesn't change
This avoids, at least, needless chatter with the compositor and the X
server in X11's case.
https://bugzilla.gnome.org/show_bug.cgi?id=786469
Dušan Kazik [Fri, 18 Aug 2017 16:07:04 +0000 (16:07 +0000)]
Update Slovak translation
Marek Cernocky [Fri, 18 Aug 2017 08:56:19 +0000 (10:56 +0200)]
Updated Czech translation
Chun-wei Fan [Tue, 8 Aug 2017 14:19:45 +0000 (22:19 +0800)]
GDK-Win32: Fix AeroSnap on HiDPI
Commit
1d0fad3 revealed that there were some assumptions made that were
actually to compensate for the bug fixed by that commit, so we need to
remove those assumptions as they would result in AerSnap to not work
properly on HiDPI screens.
Also re-do how we set the x and y positions of our GdkWindow, so that we
are more consistent across the board when we go between a GDK window
coordinate and a Windows API window cooredinate.
This would also simplify the code a bit.
https://bugzilla.gnome.org/show_bug.cgi?id=785999
Carlos Garnacho [Thu, 17 Aug 2017 12:07:12 +0000 (14:07 +0200)]
gdk/x11: Extract GdkDeviceTool tool ID from "Wacom Serial IDs" property
This property contains 5 integers, of which the last 2 respectively
contain the tool serial number and tool ID. We were only extracting the
first so far, but GdkDeviceTool also has API getters for the latter,
which remained 0.
https://bugzilla.gnome.org/show_bug.cgi?id=786400
Fran Dieguez [Wed, 16 Aug 2017 22:46:55 +0000 (22:46 +0000)]
Update Galician translation
Daniel Boles [Tue, 15 Aug 2017 18:29:22 +0000 (19:29 +0100)]
GdkDisplay: Call the correct push|pop_error_trap()
It is wrong to assume all Displays are of the same class as the default.
https://bugzilla.gnome.org/show_bug.cgi?id=784016
Daniel Boles [Tue, 15 Aug 2017 14:15:08 +0000 (15:15 +0100)]
ScrolledWindow: Bin unreachable ternary branches
We already checked that the child is not NULL above.
Coverity CID
1454191
Daniel Boles [Tue, 15 Aug 2017 01:11:19 +0000 (02:11 +0100)]
Widget: Fix outdated comments about tooltips
They are not usually yellow anymore, the previous advice about how to
style them was for pre-3.20 versions, and the immediate replacement (CSS
class .tooltip) does not seem ready for primetime.
https://bugzilla.gnome.org/show_bug.cgi?id=784421
Chun-wei Fan [Tue, 15 Aug 2017 02:43:01 +0000 (10:43 +0800)]
gtk/gtkemojichooser.c: Don't use g_autoptr()
We can't use g_autoptr() on non-GCC-style compilers.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
Aurimas Černius [Tue, 15 Aug 2017 13:48:49 +0000 (16:48 +0300)]
Updated Lithuanian translation
Matthias Clasen [Tue, 15 Aug 2017 10:40:05 +0000 (06:40 -0400)]
Remove an erroneous unref
This was leftover by accident.
Matthias Clasen [Sun, 13 Aug 2017 19:16:11 +0000 (15:16 -0400)]
Redo emoji data slightly
No longer store variation sequences explicitly. Instead, put a 0
in the sequence where the modifiers will be inserted. This is more
compact, and it allows us to put variations directly into the
recent section. Update the type of the recent-emoji setting to
match these changes.
Matthias Clasen [Sun, 13 Aug 2017 13:27:37 +0000 (09:27 -0400)]
Don't update headings in an idle
It is not necessary since flow box invalidation is
all synchronous currently. If that ever changes,
this code will need adjustment.
Daniel Boles [Mon, 14 Aug 2017 22:10:59 +0000 (23:10 +0100)]
testpopover: Sync initial vals of controls & props
The ComboBoxes were initially empty, rather than reflecting the initial
values of the properties. The CheckButtons were only correct by chance.
Fix this by setting the initial values on the widgets and binding them
to the properties using SYNC_CREATE, so the two are always synced up.
https://bugzilla.gnome.org/show_bug.cgi?id=786209
Hannes Müller [Mon, 14 Aug 2017 17:17:17 +0000 (19:17 +0200)]
configure: Add missing quotes to unbreak an AS_IF
Without quoting, the comma in AC_MSG_ERROR was wrongly interpreted as
separating the if and else paths.
https://bugzilla.gnome.org/show_bug.cgi?id=786287
Daniel Mustieles [Mon, 14 Aug 2017 16:04:33 +0000 (16:04 +0000)]
Update Spanish translation
Fran Dieguez [Sun, 13 Aug 2017 22:20:29 +0000 (22:20 +0000)]
Update Galician translation
Muhammet Kara [Sun, 13 Aug 2017 16:34:57 +0000 (16:34 +0000)]
Update Turkish translation
Matthias Clasen [Sun, 13 Aug 2017 11:49:57 +0000 (07:49 -0400)]
emoji: Fix a leak
We were leaking the list of recently used Emoji here.
Pointed out by Timm Bädert.
Matthias Clasen [Sun, 13 Aug 2017 11:49:13 +0000 (07:49 -0400)]
emoji: Start search on the first character
There is no need to wait for a longer prefix here.
We already display all the content anyway, it will
only get less.
Matthias Clasen [Sat, 12 Aug 2017 00:13:03 +0000 (20:13 -0400)]
Drop a redundant helper
We already had a function that does exactly what
is needed here.
Matthias Clasen [Fri, 11 Aug 2017 23:52:29 +0000 (19:52 -0400)]
Remove an unused field
Nothing uses bubble_window, so it can go.
Rafael Fontenelle [Sat, 12 Aug 2017 22:55:14 +0000 (22:55 +0000)]
Update Brazilian Portuguese translation
Rafael Fontenelle [Sat, 12 Aug 2017 22:41:32 +0000 (22:41 +0000)]
Update Brazilian Portuguese translation
Daniel Boles [Sat, 12 Aug 2017 20:07:22 +0000 (21:07 +0100)]
InfoBar: Fix wrong/uninit var use in code example
https://bugzilla.gnome.org/show_bug.cgi?id=786144
Мирослав Николић [Sat, 12 Aug 2017 18:03:28 +0000 (20:03 +0200)]
Updated Serbian translation
Мирослав Николић [Sat, 12 Aug 2017 18:02:20 +0000 (20:02 +0200)]
Updated Serbian translation